Date: Wed, 20 Nov 1996 22:32:59 GMT
Server: NCSA/1.4.2
Content-type: text/html
Last-modified: Wed, 20 Nov 1996 04:36:06 GMT
Content-length: 26844

<html><head>
<TITLE>C211 and H211 Course Description</TITLE>
</head>

<BODY background="http://copper.ucs.indiana.edu/~c211/icons/background.gif" 
text="#000000" 
link="#0000ff"
vlink="#0000bb">

<center>
  <!WA0><IMG SRC="http://copper.ucs.indiana.edu/~c211/icons/lambda.gif"
       ALT=""
       border=1>
</center>

<center>
<H1>C211 and H211 </H1>
<H1>Introduction to Computer Science</H1>
<H2>Fall 1996</H2>

</center>

<H2>Contents</H2>

<UL>
<LI> <!WA1><A HREF="#general">General information</A>
   <UL>
   <LI> Get your 
   <!WA2><A HREF="http://www.indiana.edu/~ucshelp/Accounts/accounts.html">
   network id or an account on copper or zinc</A>.
   <LI> A <!WA3><A HREF="http://copper.ucs.indiana.edu/~s211/tutorsF96.html">list of tutors</A> for C211.
   </UL>
<LI> <!WA4><A HREF="#motivation">Motivation and description</A>
<LI> <!WA5><A HREF="#materials">Course materials</A>
<LI> <!WA6><A HREF="#syllabus">Syllabus and lecture scripts</A>
<LI> <!WA7><A HREF="#assignments">Assignments</A>
<LI> <!WA8><A HREF="#communication">Communication</A>
<LI> <!WA9><A HREF="#evaluation">Evaluation</A>
<LI> <!WA10><A HREF="#gradebooks">Gradebooks</A>
<LI> <!WA11><A HREF="#policies">Policies</A>
</UL>

<P>
<H2>What's New <FONT SIZE="-1">and</FONT>
 <!WA12><A HREF="http://copper.ucs.indiana.edu/~s211/old-news.html">What's Old</A></H2>
<UL> 
<LI> <FONT SIZE="-1">[11/19]</FONT>
     <!WA13><A HREF="http://copper.ucs.indiana.edu/~s211/help-sessions.html">Help and Review Sessions</A> for the
     final exam.
<LI> <FONT SIZE="-1">[11/19]</FONT>
     <!WA14><A HREF="http://copper.ucs.indiana.edu/~s211/ACM.html">Student Chapter of ACM</A> will have their
     first meeting on Wednesday, November 20.
<LI> <FONT SIZE="-1">[11/12]</FONT>
     <!WA15><A HREF="http://copper.ucs.indiana.edu/~s211/disney-rave.html">Why Scheme?</A>An interesting
     letter from Disney Studios.
<LI> <FONT SIZE="-1">[11/6]</FONT>
     <!WA16><A HREF="http://copper.ucs.indiana.edu/~s211/mid2F96.html">Solutions</A> to the Second Midterm
     Examination. 
</UL>

<P> 

<H2><A NAME="general">General Information</A></H2>

<DL>
<DT> Instructors
<DD> <!WA17><A NAME=1 HREF="http://www.cs.indiana.edu/hyplan/leake.html">
	David Leake</A>, Section 1118
	<DL>
        <DD><EM>email: </EM>
        <!WA18><A HREF="mailto:leake@cs.indiana.edu">leake@cs.indiana.edu</A>	
	<DD> <EM>Office:</EM> LH230D
	<DD><EM>Phone:</EM> 855-9756
	</DL>

     <!WA19><A HREF="http://www.cs.indiana.edu/hyplan/mleone.html">
	Mark Leone</A>, Section 1123 
	<DL>
	<DD><EM>email: </EM>
        <!WA20><A HREF="mailto:mleone@cs.indiana.edu">mleone@cs.indiana.edu</A>
	<DD> <EM>Office:</EM> LH201G 
	<DD><EM>Phone:</EM> 855-6223
	</DL>

     <!WA21><A HREF="http://www.cs.indiana.edu/hyplan/springer.html">
	George Springer</A>, Section 1128
	<DL>
	<DD><EM>email: </EM>
        <!WA22><A HREF="mailto:springer@cs.indiana.edu">springer@cs.indiana.edu</A>
	<DD> <EM>Office:</EM> 230B 
	<DD><EM>Phone:</EM> 855-0918
	</DL>

     <!WA23><A HREF="http://www.cs.indiana.edu/hyplan/jsobel.html">
	Jonathan Sobel</A> and 
     <!WA24><A HREF="http://www.cs.indiana.edu/hyplan/ehilsdal/">
        Erik Hilsdale</A>, Section 9060 and Discussion section 9058
        <DL>
	<DD><!WA25><A HREF="http://www.cs.indiana.edu/hyplan/ehilsdal/c211over/">
	<STRONG>New Home Page for This Section</STRONG></A>
	<DD><EM>email: </EM>
        <!WA26><A HREF="mailto:jsobel@cs.indiana.edu">jsobel@cs.indiana.edu</A> 
        and
        <!WA27><A HREF="mailto:ehilsdal@cs.indiana.edu">ehilsdal@cs.indiana.edu</A> 
	<DD> <EM>Office:</EM> 230A
      	<DD><EM>Phone:</EM> 855-4885
	</DL>

<DT> Associate Instructors

<DD> <!WA28><A HREF="http://www.cs.indiana.edu/hyplan/ebyon.html">
	Eugene Byon</A>, Sections 1124 and 1125
	<DL>
	<DD><EM>email: </EM>
        <!WA29><A HREF="mailto:ebyon@cs.indiana.edu">ebyon@cs.indiana.edu</A>
	<DD> <EM>Office:</EM> 230
	<DD><EM>Phone:</EM> 855-9926
	</DL>
<DD> <!WA30><A HREF="http://www.cs.indiana.edu/hyplan/pedrake.html">
	Peter Drake</A>, Sections 1129 
	<DL>
	<DD><EM>email: </EM>
        <!WA31><A HREF="mailto:pedrake@cs.indiana.edu">pedrake@cs.indiana.edu</A>
	<DD> <EM>Office:</EM> 230
	<DD><EM>Phone:</EM> 855-0918
	</DL>
<DD> <!WA32><A HREF="http://www.cs.indiana.edu/hyplan/beyster.html">
	Brian Eyster</A>, Sections 1126 and 1127
	<DL>
	<DD><EM>email: </EM>
        <!WA33><A HREF="mailto:beyster@cs.indiana.edu">beyster@cs.indiana.edu</A>
	<DD> <EM>Office:</EM> 230 
	<DD><EM>Phone:</EM> 855-0918
	</DL>
<DD> <!WA34><A HREF="http://www.cs.indiana.edu/hyplan/sganz.html">
	Steve Ganz</A>, Sections 1119 and 1120
	<DL>
	<DD><EM>email: </EM>
        <!WA35><A HREF="mailto:sganz@cs.indiana.edu">sganz@cs.indiana.edu</A>
	<DD> <EM>Office:</EM> 230 
	<DD><EM>Phone:</EM> 855-0918
	</DL>
<DD> <!WA36><A HREF="http://www.cs.indiana.edu/hyplan/bylong.html">
	Byron Long</A>, Sections 1121 and 1122
	<DL>
	<DD><EM>email: </EM>
        <!WA37><A HREF="mailto:bylong@cs.indiana.edu">bylong@cs.indiana.edu</A>
	<DD> <EM>Office:</EM> 230 
	<DD><EM>Phone:</EM> 855-0918
	</DL>
     
<DT> Prerequisites
<DD> 2 years of high school algebra or M014
<DT> Credit hours
<DD> 4
<DT> Lectures
<DD> Section 1118, TR 1:00-2:15, in LH102, David Leake
<DD> Section 1123, MWF 9:05-9:55, in LH102, Mark Leone
<DD> Section 1128, TR 1:00-2:15, in LH115, George Springer
<DD> Section 9060, MWF 9:05-9:55, in BH304, Jonathan Sobel and Erik Hilsdale
     
<DT> Discussion sections for lecture sections 1118
<DD> Section 1119, R 2:30-3:20, in SB221, Steve Ganz
<DD> Section 1120, R 4:30-5:30, in SB221, Steve Ganz
<DD> Section 1121, F 9:05-9:55, in SB221, Byron Long
<DD> Section 1122, F 10:10-11:00 in SB221, Byron Long

<DT> Discussion sections for lecture section 1123
<DD> Section 1124, R 11:15-12:05, in BH104, Eugene Byon
<DD> Section 1125, R 1:25-2:15, in SB221, Eugene Byon
<DD> Section 1126, F 11:15-12:05, in SB221, Brian Eyster
<DD> Section 1127, F 1:25-2:15, in SB221, Brian Eyster

<DT> Discussion sections for lecture sections 1128
<DD> Section 1129, R 3:35-4:25, in LH115, Peter Drake

<DT> Discussion sections for lecture sections 9060
<DD> Section 9068, F 11:15-12:05, in OPT107, Jonathan Sobel and Erik Hilsdale

<DT> Local newsgroups
<DD> <!WA38><A NAME=1 HREF="news:ac.csci.c211">ac.csci.c211</A>
<DD> <!WA39><A NAME=1 HREF="news:ac.csci.h211">ac.csci.h211</A>
<DD> <!WA40><A NAME=1 HREF="news:cs.students">cs.students</A>
</DL> 

<H2>Office Hours</H2>

<UL>

<LI> Monday
<UL> 
<LI> 10:00-11:00 -- Mark Leone
<LI> 1:00-3:00 -- Brian Eyster
<LI> 2:30-5:00 -- Jonathan Sobel, in LH230A
<LI> 3:00-5:00 -- Steve Ganz
</UL>

<LI> Tuesday
<UL>
<LI> 10:00-12:00 -- Peter Drake
<LI> 2:30-3:45 -- George Springer, in LH230B 
<LI> 2:30-3:45 -- David Leake, in LH230D 
<LI> 4:00-6:00 -- Erik Hilsdale, in LH230A

</UL>


<LI> Wednesday
<UL>
<LI> 10:00-11:00 -- Mark Leone
<LI> 1:30-3:30 -- Byron Long
<LI> 3:00-5:00 -- Eugene Byon, in LH230
</UL>


<LI> Thursday
<UL>
<LI> 2:30-3:30 -- George Springer, in LH230B 
<LI> 2:30-3:30 -- David Leake, in LH230D 
<LI> 2:00-4:00 -- Erik Hilsdale, in LH230A
</UL>

</UL>

If it is difficult for you to make these times, appointments at other times
may be made by contacting any of the instructors or AIs.

<A NAME="description"><H2>Course Description</H2></A>

Programming is, in general, the art of solving problems.  The study
of computer programming is therefore the study of solving problems with
a computer, but it is also much more.  When a programmer writes a
program, he or she is actually constructing a model of a <EM>process</EM>
for doing something---such a model is called an <EM>algorithm</EM>.
Furthermore, the programmer is concerned not only with whether the
program simply works, but also with how well it works and how it
interacts with both users and other programs.<P>

This class is designed mainly to teach you the art of computer
programming.  To that end, we shall try to develop in you a sense of
style and aesthetics that will help guide your programming efforts,
and we shall try to develop your intuition about how things work and
why.  You will learn some of the design principles that go into the
<EM>engineering</EM> of good programs.  We shall teach you a little
computer <EM>science</EM>, to give you a way of analyzing your programs
and your algorithms and finding the means to improve them.  You will
learn a number of standard algorithms and some programming 
<EM>idioms</EM>--standard ways of performing certain kinds of tasks.<P>

To do any programming, we need to choose a <EM>language</EM>. 
Whichever we choose, the language does not place limits on what our
programs can do, but only on what they look like.  It provides us
with a framework in which to organize our ideas about processes and
problem solving.  The programming language we use in this class is
Scheme.  We have chosen it because it provides a convenient mechanism
for describing most of the idioms and processes that programmers have
found useful.  We won't spend much time teaching the details of the
language, because we don't have to; you will find that it is easy to
pick up as we go along.<P>

It is often helpful to first program using a simple, powerful language
like Scheme, even if one must then translate the solution into a more
traditional programming language like C++.  The simplicity of Scheme
allows us to treat many computer science topics in more depth than
would be possible if C or C++ were used, for in traditional languages
more inessential detail must be mastered.  Scheme allows us to give a
better impression of the true joys and challenges of programming.
Then you will be in a better position to study C++ in your next
computer science course, C212.<P>

Finally, computer programming is still a fairly young field, and it
hasn't lost its sense of fun for lots of people, including us.  We
hope that you will enjoy it as much as we do.<P>

<H3>Goals</H3>

At the end of the course, a student can be expected to know the
following concepts and to be able to write good Scheme programs.

<OL>
<LI> The students should be able to use the following data types:
symbols, numbers, booleans, lists, vectors and matrices, strings, and
characters.
<LI> The students should know how to write programs in recursive,
iterative, and imperative styles.  
<LI> Students should be able to write recursive programs on
lists, both those containing only top level items and those containing
nested sublists (tree recursion).
<LI> The students should be able to use procedures as first-class
objects, that is, pass them as arguments and also write programs whose
values are procedures.  This includes the currying and composing of
procedures. 
<LI> The students should understand the concept of scope and
environment.  They should be able to use locally-defined procedures.
<LI> Students should be able to use abstraction, both with data in making
programs independent of the data representation, and also with
procedures in abstracting the structure of programs.
<LI> Students should be able to use the input and output routines, and
write convenient user interfaces for their programs.
<LI> Students should be able to handle the binary representation of
numbers.
<LI> Students should know some of the standard sorting routines, e.g.,
insertion sort (O(n^2)), mergesort and quicksort (O(n log n)), and
understand the advantages and disadvantages of each.  They should also
be able to write both linear and binary search programs.
<LI> Students should know how to mutate various data structures, including
lists, vectors, strings.  In addition they should understand
side-effecting variables.
<LI> Students should be able to read programs and have an appreciation of
what constitutes good programming style.  They should be aware of the
relative efficiency of programs.
<LI> Certain topics will be included if time permits.  These include such
things as writing and using syntactic extensions, developing an
object-oriented programming package in Scheme, and using streams.
</OL>

<H3>Literate programming</H3>

Every programmer knows that programs must be comprehensible to the
computer.  The programming language implementation complains when they are
not. But with some practice it is generally easy to solve such problems.<P>

What is less appreciated is that programs must also be comprehensible to
the programmer.  Otherwise the programmer cannot have any confidence that
the program is correct.  (A program may easily be comprehensible to the
computer, but not do what is intended--and only the programmer knows what
is intended.)  In most cases it is also <EM>essential</EM> that programs be
comprehensible to other programmers.  Though this is not typical of student
programming experience, in the "real world" programmers spend most of their
time modifying huge programs that were developed over a long period of time
by many other programmers.  Modifying someone else's code (or even your
own, a few months later) may be a joy or a nightmare--depending on how
clearly the program is written.<P>

Thus we emphasize the importance <EM>literate programming</EM>: writting
programs that are easy to understand (relative to the difficulty of the
problem they solve).  Literate programming is almost always more important
than other programming goals such as efficiency and code compactness
(though efficiency and compactness are often byproducts of literate
programming).

<A NAME="materials"><H2>Course Materials</H2></A>

<UL>

<LI> Required
<UL>
<LI> G. Springer and D. Friedman: <EM>Scheme and the Art of
Programming,</EM> MIT Press/McGraw Hill, 1989.  We will cover most of the
first three-quarters of this text.  The <!WA41><A
HREF="http://copper.ucs.indiana.edu/~s211/sap-source.ss">source code</A> is available.
<LI> C211 course packet, available at <EM>The White Rabbit</EM>, 110 S.
Indiana Ave.  This packet contains a <!WA42><A HREF="http://copper.ucs.indiana.edu/~s211/tutortitle.html">tutorial</A>
on the software systems the course uses, and the first assignment.
</UL>

<LI> Recommended
<UL>
<LI> D. P. Friedman and M. Felleisen, <EM>The Little Schemer,</EM>
Fourth Edition, MIT Press, 1996.  This little book is the best
introduction to recursive programming that we know of, and is designed
for self study.  Recursion is used throughout this course, but some
students require extra material before they feel comfortable using it.
If you are having any difficulty mastering recursion, we strongly
recommend that you get this book and study it on your own.
</UL>
<LI> Interpreters for Macs and PCs  
<UL> 
There is a fairly beautiful Scheme package available for <!WA43><a
href="http://copper.ucs.indiana.edu/~s211/MacGambit2.2.1.sea.bin">MacIntosh</a> and a less beautiful one
for <!WA44><a href="http://copper.ucs.indiana.edu/~s211/gambitc.zip">DOS</a>.  </p>
</UL>
</UL>

<A NAME="syllabus"><H2>Syllabus and Lecture Scripts</H2></A>

Most of the first three-quarters of the text <EM>Scheme and the Art of
Programming</EM> will be covered.  Approximately one week will be devoted
to each of the chapters listed below.<P>

The links in the following list are to script files that drive the
on-line lecture presentations.  The script file for chapter
<EM>n</EM> may also be accessed on the machine copper as the file 
<KBD>~c211/www/script</KBD><EM>n</EM>.<p>

Prof. Leone uses a <!WA45><a href="http://www.cs.indiana.edu/hyplan/mleone/c211-lectures.html">separate script for each lecture</a>, based on the
scripts below (sometimes with more examples).

<UL>
<LI> <!WA46><A HREF="http://copper.ucs.indiana.edu/~s211/script1">Chapter 1</A>: Data and operators
  <UL>
     <LI><!WA47><A HREF="http://copper.ucs.indiana.edu/~s211/emacs.html">Emacs Keybindings</A>
  </UL>
<LI> <!WA48><A HREF="http://copper.ucs.indiana.edu/~s211/script2">Chapter 2</A>: Procedures and recursion
<LI><!WA49><A HREF="http://copper.ucs.indiana.edu/~s211/script3">Chapter 3</A>: Data abstraction and numbers
<LI><!WA50><A HREF="http://copper.ucs.indiana.edu/~s211/script4">Chapter 4</A>: Data driven recursion
<LI> <!WA51><A HREF="http://copper.ucs.indiana.edu/~s211/script5">Chapter 5</A>: Locally defined procedures
     <UL> 
      <!WA52><A HREF="http://copper.ucs.indiana.edu/~s211/poly-alg.ss"> poly-alg.ss</A> <BR> 
      <!WA53><A HREF="http://copper.ucs.indiana.edu/~s211/poly-rep1.ss"> poly-rep1.ss</A> <BR> 
      <!WA54><A HREF="http://copper.ucs.indiana.edu/~s211/poly-rep2.ss"> poly-rep2.ss</A> <BR> 
      <!WA55><A HREF="http://copper.ucs.indiana.edu/~s211/numrep.html"> Binary Notation</A> <BR> 
     </UL>
<LI> <!WA56><A HREF="http://copper.ucs.indiana.edu/~s211/script6">Chapter 6</A>: Interactive programming
<LI> <!WA57><A HREF="http://copper.ucs.indiana.edu/~s211/script7">Chapter 7</A>: Abstracting procedures
<LI> <!WA58><A HREF="http://copper.ucs.indiana.edu/~s211/script9">Chapter 9</A>: Using vectors
<LI> <!--<!WA59><A HREF="http://copper.ucs.indiana.edu/~s211/script10">-->Chapter 10<!--</A>-->: Sorting and searching
<LI> <!--<!WA60><A HREF="http://copper.ucs.indiana.edu/~s211/script11">-->Chapter 11<!--</A>-->: Mutation
<LI> <!--<!WA61><A HREF="http://copper.ucs.indiana.edu/~s211/script12">-->Chapter 12<!--</A>-->: Object-oriented programming
</UL>

<A NAME="assignments"><H2>Assignments</H2></A>

A programming assignment will be due almost every week.  The assignments
will appear below as they are assigned.  Assignment <EM>n</EM> is also
available as plain text in the file <KBD>~c211/www/a<EM>n</EM>F96.txt</KBD>.
Links to answer files, with names of the form
<KBD>~c211/www/ans<EM>n</EM>F96.ss</KBD> will be added as appropriate.
<P>
<center>
<table border=1 align=center width="80%" >
<tr><th> # </th><th> Assignment </th><th> Due </th><th> Answers </th></tr>
<tr>
<td align=center> 1 
<td align=center> <!WA62><A HREF="http://copper.ucs.indiana.edu/~s211/a1F96.html"> Getting started</A> 
<td align=center> 9/11 @ 5pm 
<td align=center> -- 
</tr><tr>
<td align=center> 2 
<td align=center> <!WA63><A HREF="http://copper.ucs.indiana.edu/~s211/a2F96.html"> Simple procedures</A> 
<td align=center> 9/18 @ 5pm
<td align=center> <!WA64><A HREF="http://copper.ucs.indiana.edu/~s211/ans2F96.ss"> Answers</A>
</tr><tr>
<td align=center> 3
<td align=center> <!WA65><A HREF="http://copper.ucs.indiana.edu/~s211/a3F96.html"> Simple recursion</A> 
<td align=center> 9/25 @ 5pm
<td align=center> <!WA66><A HREF="http://copper.ucs.indiana.edu/~s211/ans3F96.ss"> Answers</A>   
</tr><tr>
<td align=center> 4
<td align=center> <!WA67><A HREF="http://copper.ucs.indiana.edu/~s211/a4F96.html"> More on recursion</A> 
<td align=center> 10/2 @ 5pm
<td align=center> <!WA68><A HREF="http://copper.ucs.indiana.edu/~s211/ans4F96.ss"> Answers</A>   
</tr><tr>
<td align=center> 5
<td align=center> <!WA69><A HREF="http://copper.ucs.indiana.edu/~s211/a5F96.html"> Deep recursion</A> 
<td align=center> 10/11 (Fri) @ 5pm
<td align=center> <!WA70><A HREF="http://copper.ucs.indiana.edu/~s211/ans5F96.ss"> Answers</A>   
</tr>
<tr>
<td align=center> 6
<td align=center> <!WA71><A HREF="http://copper.ucs.indiana.edu/~s211/a6F96.html"> 
Iteration</A> 
<td align=center> 10/16 @ 5pm
<td align=center> <!WA72><A HREF="http://copper.ucs.indiana.edu/~s211/ans6F96.ss"> Answers</A>
</tr><tr>
<td align=center> 7
<td align=center> <!WA73><A HREF="http://copper.ucs.indiana.edu/~s211/a7F96.html"> 
Locally defined procedures and polynomials</A> 
<td align=center> 10/23 @ 5pm
<td align=center> <!WA74><A HREF="http://copper.ucs.indiana.edu/~s211/ans7F96.ss"> Answers</A>   
</tr>
<tr>
<td align=center> 8
<td align=center> <!WA75><A HREF="http://copper.ucs.indiana.edu/~s211/a8F96.html"> 
Binary Numbers, Data Abstraction, and Trees</a>
<td align=center> 10/30 @ 5pm
<td align=center> <!WA76><A HREF="http://copper.ucs.indiana.edu/~s211/ans8F96.ss"> Answers</A>   
</tr><tr>
<td align=center> 9
<td align=center> <!WA77><A HREF="http://copper.ucs.indiana.edu/~s211/a9F96.html"> 
Encodings and Interactive Programming</A> 
<td align=center> 11/8 (Fri) @ 5pm

<td align=center> <!WA78><A HREF="http://copper.ucs.indiana.edu/~s211/ans9F96.ss"> Answers</A>   
</tr><tr>
<td align=center> 10
<td align=center> <!WA79><A HREF="http://copper.ucs.indiana.edu/~s211/a10F96.html"> 
Procedures as Arguments and Building Huffman Trees </A>
<td align=center> 11/13 @ 5pm
<td align=center> <!WA80><A HREF="http://copper.ucs.indiana.edu/~s211/ans10F96.ss"> Answers</A>
</tr><tr>
<td align=center> 11
<td align=center> <!WA81><A HREF="http://copper.ucs.indiana.edu/~s211/a11F96.html"> Procedural Abstraction,
Strings, and Vectors </A>
<td align=center> 11/26 (Tue) @ 5pm
<!-- <td align=center> <!WA82><A HREF="http://copper.ucs.indiana.edu/~s211/ans11F96.ss"> Answers</A>   -->
<!--
</tr><tr>
<td align=center> 12
<td align=center> <!WA83><A HREF="http://copper.ucs.indiana.edu/~s211/a12F96.html"> Assignment and Mutation </A>
<td align=center> 12/4 @ 5pm
<td align=center> <!WA84><A HREF="http://copper.ucs.indiana.edu/~s211/ans12F96.ss"> Answers</A>   
</tr><tr>
<td align=center> 13
<td align=center> <!WA85><A HREF="http://copper.ucs.indiana.edu/~s211/a13F96.html"> Sorting and Searching </A>
<td align=center> 12/11 @ 5pm
<td align=center> <!WA86><A HREF="http://copper.ucs.indiana.edu/~s211/ans13F96.ss"> Answers</A>   
</tr>

-->
</table>
</center>


<!--

<LI> <!WA87><A
HREF="http://iueval.cs.indiana.edu:5281/iueval/cgi-bin/course-form/semester=2summer96/course=c211-soor">Course
evaluation</A>. Please turnin by 5pm August 8 (Thursday).
</UL>

-->
<P> 
As submitted, all programs must run under Chez Scheme.  It is
recommended that you use the UCS (University Computing Services)
machines named <EM>copper</EM> and <EM>zinc</EM>.  New students should
have a Network ID and instructions for creating copper and zinc
accounts. <P>
 
As soon as you have your account, you should configure it to run
emacs, Scheme within emacs, and the handin program.  This is done by
entering <KBD>~c211/setup</KBD>, hitting <KBD>return</KBD>, and logging
out.  <EM>You only have to do this once!</EM>  When you login the next
time, your account will be configured for C211.  You have to configure
both your <EM>copper</EM> and <EM>zinc</EM> accounts. <P>  

Assignments will be posted on or before Wednesday afternoon and will
be due electronically by 5:00 p.m. on the Wednesday of the following
week.  Any written material will be due at the beginning of the
lecture on that Thursday or Friday.  Late assignments will not be
accepted!  In computing the semester assignment average, the lowest
assignment grade will be dropped.  Although assignments count for only
10% of the final grade, it is essential that you do the assignments to
master the material.  Computer programming, like playing a musical
instrument, can only be mastered through lots of practice.<P>

Programming assignments are submitted using the program
<KBD>c211-handin</KBD> (in the directory <KBD>~c211/bin</KBD> on
copper and zinc).  The handin program evaluates and grades your
program's behavior and the results are returned to you almost
immediately via email.  Since <EM>zinc</EM> allows e-mail to be sent
but not received, you will have to read the grading results on the
machine where you normally read your mail.  You may correct and
resubmit your programs as many as five times until the announced
deadline.  The highest grade recorded for the assignment will be the
one that is entered into the class gradebook. <P>

In this course, you may discuss assignments with other students.  (<EM>Do
not</EM> assume this is true in all your courses!)  We expect you to
actually think through and fully understand assignment solutions.  We have
found that students who copy someone elses work and turn in something they
do not fully understand usually fail the examinations and the 10% added by
having good assignment grades is insufficient to pass the course.  Teamwork
in doing assignments is good as long as each member of the team
contributes and fully understands the programs.  This certainly means
that you should not put your name on a file written by someone else
and submit it as your own work. <P>

After the final submission of an assignment, it will not only be
electronically graded, but an Associate Instructor will also grade the
assignment for style.  Good programming style makes it easier to get your
programs working and also develops the habit of <!WA88><A
HREF="#literate">literate programming</A> which, as we have already noted,
is of great importance in developing large programs.  In this course good
style is also rewarded in the evaluation of exams.  For Scheme programming,
consistent use of a suitable style of program indentation is essential, and
violation of the first <!WA89><A HREF="http://copper.ucs.indiana.edu/~s211/indentation.html">cardinal rule of
indentation</A> will automaticaly result in loss of credit.<P>

<A NAME="communication"><H2>Communication</H2></A>

The course newsgroups, 

<!WA90><A NAME=1 HREF="news:ac.csci.c211">ac.csci.c211</A> and,
<!WA91><A NAME=1 HREF="news:ac.csci.h211">ac.csci.h211</A> will be used
to post announcements, such as assignments, exams, and any exceptions
to our usual office hours.  You are also encouraged to use it to post
questions related to the course or share related information with the
class.  Make a habit of looking for new notes a few times each
week. On individual or personal matters, please feel free to contact your
instructor or associate instructor via email. <P>

Another newsgroup you should check regularly is <!WA92><A NAME=1
HREF="news:cs,students">cs.students</A>, which contains important
announcements from the Computer Science Department to all of its
students.  It also contains interesting dialogs on various topics.<P>

This course description is accessible as an HTML (hypertext markup
language) file on the WWW (World Wide Web) with the URL (Universal Resource
Locator) <KBD>http://copper.ucs.indiana.edu/~c211/home.html</KBD>.  It
will be updated with additional information, such as programming assignments,
as the course progresses.<P>

To view a resource given its URL, use the netscape program on a
networked PC or Mac.  Netscape underlines HTML hypertext links.  To
follow a link, click on it.  The URL for the computer science
department's home page is <!WA93><A
HREF="http://www.cs.indiana.edu/home-page.html">
http://www.cs.indiana.edu/home-page.html</A>, from which all sorts of
information can be obtained.

<A NAME="evaluation"><H2>Evaluation</H2></A>


<UL>
<LI> 10% -- Assignments
<LI> 28% -- Exam 1, 7:30-9:00 p.m., Tuesday, October 8th
     <DL> 
     <DD> <!WA94><A HREF="http://copper.ucs.indiana.edu/~s211/topics1.html">Study Guide and Room Assignments</A> for
          the First Midterm Examination.
     <DD> A <!WA95><A HREF="http://copper.ucs.indiana.edu/~s211/midterm1.sample4">sample exam</A> for the first
          midterm examination.
     <DD> A <!WA96><A HREF="http://copper.ucs.indiana.edu/~s211/mid1F96.html">solution</a> to the first midterm
	  examination.
     </DL>
 
<LI> 28% -- Exam 2, 7:30-9:00 p.m., Tuesday, November 5th
     <DL>
     <DD> <!WA97><A HREF="http://copper.ucs.indiana.edu/~s211/t2s96.txt">Sample Exam</A> for the Second Midterm
          Examination.  
     <DD> <!WA98><A HREF="http://copper.ucs.indiana.edu/~s211/topics2.html">Study Guide and Room Assignments</A>
          for the Second Midterm Examination.  
     <DD> A <!WA99><A HREF="http://copper.ucs.indiana.edu/~s211/mid2F96.html">solution</a> to the second midterm
	  examination.
     </DL>

<LI> 34% -- Final Exam
<UL>
<LI> Sections 1118 and 1128: 12:30-2:30 p.m., Thursday, December 19th
<LI> Sections 1123: 10:15 a.m.-12:15 p.m., Monday, December 16th
     <DL>
     <DD> <!WA100><A HREF="http://copper.ucs.indiana.edu/~s211/help-sessions.html">Help and Review Sessions</A>
          for the final exam.
     </DL>

</UL>
</UL>

Mid-term and final exams locations will be announced.<P>

<H3><A NAME="gradebooks">Gradebooks</A></H3>

The Electronic Gradebook for this course will be updated with each
assignment and exam.<P>



<UL>
<LI> Gradebook for <!WA101><A
HREF="http://www.cs.indiana.edu/cgi-bin/grades/c211-leak/leake@cs.indiana.edu">
Section 1118</A> 
<LI> Gradebook for <!WA102><A
HREF="http://www.cs.indiana.edu/cgi-bin/grades/c211-leon/mleone@cs.indiana.edu">
Section 1123</A> 
<LI> Gradebook for <!WA103><A 
HREF="http://www.cs.indiana.edu/cgi-bin/grades/h211-spri/springer@cs.indiana.edu">
Section 1128</A> 
<LI> Gradebook for <!WA104><A 
HREF="http://www.cs.indiana.edu/cgi-bin/grades/c211-over/ehilsdal@cs.indiana.edu">
Section 9060</A> 
</UL>


<A NAME="policies"><H2>Policies</H2></A>

<H3>Attendance</H3>

Class attendance will not be monitored although regular attendance and
class participation are strongly recommended.  Attendance at examinations
is compulsory and make-up examination will normally not be given.  No
special assignments or projects will be given to help students raise their
grades.  

<H3>Academic Integrity</H3>

Read the Computer Science Department's <!WA105><A
HREF="http://www.cs.indiana.edu/integrity.html"><EM>Statement on Academic
Integrity</EM></A> to be sure you understand the rules under which computer
science courses operate.  Cases of academic dishonesty will be reported
to the Office of Student Ethics, a branch of the Office of the Dean of
Students.

<H3>Withdrawal</H3>

Withdrawal after Wednesday, October 30th, requires concurrence of the Dean
based on extenuating circumstances.<P>

<H3>Incomplete grade</H3>

An incomplete (I) final grade will be given only by prior arrangement in
exceptional circumstances conforming to university and departmental policy
in which the bulk of course work has been completed in passing fashion.<P>

</body>
</html>
